package cn.forge.mall.module.system.api.oauth2;

import cn.forge.mall.framework.common.exception.GlobalErrorCodeConstants;
import cn.forge.mall.framework.common.exception.util.ServiceExceptionUtils;
import cn.forge.mall.framework.common.pojo.CommonResult;
import cn.forge.mall.framework.common.util.object.BeanUtils;
import cn.forge.mall.framework.security.core.util.SecurityFrameworkUtils;
import cn.forge.mall.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
import cn.forge.mall.module.system.service.oauth2.OAuth2AccessTokenService;
import cn.forge.mall.system.api.oauth2.OAuth2TokenApi;
import cn.forge.mall.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * @author liangyuanping
 * @ClassName OAuth2TokenApiImpl
 * @description:
 * @date 2024年03月21日
 * @version: 1.0
 */
@RestController // 提供 RESTful API 接口，给 Feign 调用
public class OAuth2TokenApiImpl implements OAuth2TokenApi {

    @Resource
    private OAuth2AccessTokenService oauth2TokenService;

    @Override
    public CommonResult<OAuth2AccessTokenCheckRespDTO> checkAccessToken(String accessToken) {
        OAuth2AccessTokenDO oAuth2AccessTokenDO = oauth2TokenService.checkAccessToken(accessToken);
        return CommonResult.success(BeanUtils.toBean(oAuth2AccessTokenDO, OAuth2AccessTokenCheckRespDTO.class));
    }

    @Override
    public CommonResult<OAuth2AccessTokenCheckRespDTO> testRpc(String test) {
        OAuth2AccessTokenCheckRespDTO dto = new OAuth2AccessTokenCheckRespDTO();
        dto.setUserId(SecurityFrameworkUtils.getLoginUserId());
//        if (true){
//            throw ServiceExceptionUtils.exception0(GlobalErrorCodeConstants.BAD_REQUEST.getCode(),"id不能为空");
//        }
        return CommonResult.success(dto);
    }
}
